
using System;
using System.Data;
using System.Linq;
using System.Linq.Dynamic;
using System.Linq.Dynamic.Core;
using System.Linq.Expressions;
using System.Threading.Tasks;
using System.Collections.Generic;
using Microsoft.EntityFrameworkCore;

using Abp.UI;
using Abp.AutoMapper;
using Abp.Authorization;
using Abp.Linq.Extensions;
using Abp.Domain.Repositories;
using Abp.Application.Services;
using Abp.Application.Services.Dto;


using JYJ.AiYard.StationManagement.TbStations.Dtos;
using JYJ.AiYard.StationManagement.TbStations;

namespace JYJ.AiYard.StationManagement.TbStations
{
    /// <summary>
    /// TbStation应用层服务的接口方法
    ///</summary>
    public interface ITbStationAppService : IApplicationService
    {
        /// <summary>
		/// 获取TbStation的分页列表信息
		///</summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<PagedResultDto<TbStationListDto>> GetPaged(GetTbStationsInput input);


		/// <summary>
		/// 通过指定id获取TbStationListDto信息
		/// </summary>
		Task<TbStationListDto> GetById(EntityDto<long> input);


        /// <summary>
        /// 通过组织ID(StationId)查询TbStationListDto信息
        /// </summary>
        Task<TbStationListDto> GetByStationId(EntityDto<long> input);

        /// <summary>
        /// 通过用户ID获取场所及子项
        /// </summary>
        Task<List<TbStationTreeDto>> GetByStationUserId();

        /// <summary>
        /// 返回实体的EditDto
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<GetTbStationForEditOutput> GetForEdit(NullableIdDto<long> input);


        /// <summary>
        /// 添加或者修改TbStation的公共方法
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task CreateOrUpdate(CreateOrUpdateTbStationInput input);


        /// <summary>
        /// 删除TbStation信息的方法
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task Delete(EntityDto<long> input);


        /// <summary>
        /// 批量删除TbStation
        /// </summary>
        Task BatchDelete(List<long> input);

      

        ///// <summary>
        //      /// 导出TbStation为excel表
        //      /// </summary>
        //      /// <returns></returns>
        //Task<FileDto> GetToExcel();

    }
}
